package com.cqeec.gams.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cqeec.gams.entity.FunctionalModule;

/**
 * 功能模块数据访问接口。
 * 
 * @author 唐礼飞
 *
 */
public interface FunctionalModuleMapper {
	/**
	 * 统计表中所有的记录数。
	 * 
	 * @return 总的记录数。
	 */
	public long count();

	/**
	 * 根据指定的标识查询功能模块。
	 * 
	 * @param id 功能模块标识。
	 * @return 功能模块。
	 */
	public FunctionalModule findById(String id);

	/**
	 * 查询所有功能模块信息。
	 * 
	 * @return 所有功能模块。
	 */
	public List<FunctionalModule> findAll();

	/**
	 * 分页查询功能模块信息。
	 * 
	 * @param startRowNumber 起始行号=（页码-1）*每页记录数。
	 * @param pageSize       每页记录数。
	 * @return 分页的功能模块信息。
	 */
	public List<FunctionalModule> findPage(@Param("startRowNumber") int startRowNumber, @Param("pageSize") int pageSize);

	/**
	 * 插入功能模块信息。
	 * 
	 * @param account 功能模块。
	 */
	public void insert(FunctionalModule entity);

	/**
	 * 根据标识更新功能模块信息。
	 * 
	 * @param account 功能模块。
	 */
	public void update(FunctionalModule entity);

	/**
	 * 根据标识删除功能模块信息。
	 * 
	 * @param id 标识。
	 */
	public void delete(String id);

	public List<FunctionalModule> findAllFunctionGroup();

	public int countSubFunction(String functionGroupId);
}
